%@浙江师范大学 信息光学研究所 student-jpx
% &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
% 制作全息图
% &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
% cd 

I0 = imread("zsd01.jpg");
I0_name = "zsd01";
rgbia = 1;
rgbim = 1;%表示步距rgbib = 1;
spd = 0.1;
spdh = 3.18e-4;
z = 300;
rh = 1000;
ch = 1000;

dot2plane(I0,I0_name,rgbia,rgbim,rgbib,spd,spdh,z,rh,ch)

% % **I0是输入图像，I0_name是输出图像名，rgbia(1为r,2为g,3为b),spd是物像素，spdh是全息图像素，z是衍射距离

% &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
% 全息再现程序
% *********************************************************************

I1 = imread("");     %图片路径
rhs = 4000;
chs = 4000;          %全息图裁剪区域
zs = 300;            %衍射距离
lambda = 650*10^(-6);%再现波长
reSfft(I1,rhs,chs,zs,lambda);

% *******************************************************************
% 合并图片
%***************************************************************************
% 列方向合并
cd G:\
II1=imread("I1.bmp");
II2=imread("I2.bmp");
II3=imread("I3.bmp");
II4=imread("I4.bmp");
II5=imread("I5.bmp");
II6=imread("I6.bmp");

II = zeros(90000,50000);
II = [II1 II2 II3 II4 II5 II6];

imwrite(II,map,"Ih.bmp");

% 行方向合并
cd G:\
II1 = imread("zsd011.bmp");
II2 = imread("zsd022.bmp");
II3 = imread("zsd033.bmp");

% II2 = uint8(zeros(10000,10000));
% II3 = uint8(zeros(10000,10000));

Id1 = uint8(zeros(27736,10000));
Id2 = uint8(zeros(24591,10000));
Id3 = uint8(zeros(7673,10000));

I3 = [II1;Id1;II2;Id2;II3;Id3];
I3 = uint8(I3);
[AAA,map]=imread("tg1-gray.bmp");
imwrite(I3,map,"I1.bmp");

%分割成单方向分辨率10000的图片
[AAA,map]=imread("tg1-gray.bmp");
for i = 1:9
    for j = 1:6
        IIcut = II( (i-1)*10000+1:i*10000,(j-1)*10000+1:j*10000  );
        a = 9-i; 
        b = j-1;
        imwrite(IIcut,map,"00"+a+"00"+b+".bmp");
    end
end
%**************************************************************
%生成物光波后干涉
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

I0_name = 'zsd';
I0_path = '';
gray = 0;%gray为1为二元全息图，为0为灰度255
interference(I0_name,I0_path,gray);
